
package Entidad;

import Frontera.ACView;

public class AC {

    /*Las celdas tienen como atributod su posición en el eje x y el eje y, además
    de su estado (vivo o muerto) y sus vecinos.*/
    private ACView cell;
    private int i;
    private int j;
    private int estado;
    private AC[] neighbors;
    private boolean derrumbe;

    public boolean isDerrumbe() {
        return derrumbe;
    }

    public void setDerrumbe(boolean derrumbe) {
        this.derrumbe = derrumbe;
    }

    public AC(int i, int j) {
        this.i = i;
        this.j = j;
        this.estado = 0;
    }

    public int getI() {
        return this.i;
    }

    public int getJ() {
        return this.j;
    }

    public void setNeighbors(AC[] neighbors) {
        this.neighbors = neighbors;
    }

    public AC getNeighbor(int index) throws IndexOutOfBoundsException {
        return this.neighbors[index];
    }
    
        
    public void setCell(ACView cell) {
        this.cell = cell;
    }
    
    public int getEstado(){
        return this.estado;
    }

    public void setEstado(int estado) {
        this.estado = estado;
    }
    
    public int calculateNextStep(){
        if(this.isDerrumbe()==true){
            for (int x = 0; x < neighbors.length; x++){
                this.neighbors[x].setEstado(this.neighbors[x].getEstado()+1);
                }
            return 0;
        }else {
            return this.getEstado();
        }
    }

    public void clickDerrumbe(boolean drop) {
        setDerrumbe(drop);
        calculateNextStep();
    }
            
           
        
}
